Media player

ABSTRACT

The present invention provides a media player configurable to provide the user with a seamless way of conducting transactions from within a window of the media player itself. All intermediate steps relating to the required transaction are carried out by calling up relevant modules/applications from within the application libraries from within an e-commerce platform. In preferred embodiments, the media player is configured to retrieve an encoded media file from a server or other content delivery network (CDN). The media player is further configured to display predefined overlays to the user during playback of the media file in response to identifying cues encoded into the media file by the content owner. The content owner can upload the media files to a server or other CDN via a dashboard/user interface. The cues can be encoded with a plurality of fields to enable the desired functionality to be achieved.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. Non-Provisional Pat.Application No. 17/370,233 filed on Jul. 8, 2021, entitled “MediaPlayer,” which claims priority to U.S. Provisional Pat. Application No.63/053,061, filed on Jul. 17, 2020, entitled “A Media Player,” thedisclosures of which are hereby incorporated by reference in theirentirety for all purposes.

BACKGROUND TO THE INVENTION

The increase in the use of and reliance on multimedia platforms has ledto an increased focus on utilising these platforms to advertise and sellproducts and services to the end user. Conventionally, the user wouldidentify a product or service of interest within the player window andwould then be required to locate the product or service via separatesearches using a browser or through the use of embedded hyperlinks whichredirect the user to the appropriate page of a website where the usercan then complete the required transaction. In both cases, the user isnecessarily directed away from the media player window and theassociated content displayed there.

SUMMARY OF THE INVENTION

According to a first aspect of the present invention, there is provideda method for playback of media files on a media player, comprising thesteps of: retrieving a media file from a file location; initiatingplayback of the media file and displaying content on a media playerdisplay; detecting a first encoded cue at a location in the media file;displaying an interaction overlay element associated with the firstencoded cue on the media player display while the media file is playing;detecting a user input associated with the interaction overlay element;and, initiating the display of a transaction overlay element fordetecting further user inputs within the media player display.

The method can further detect a second encoded cue at a subsequentlocation in the media file and remove the interaction overlay elementfrom the media player display in response to detecting the secondencoded cue.

In one or more embodiments, the playback of the media file is pausedwhen a user input associated with the interaction overlay element isdetected.

In one or more embodiments, the playback of the media file is resumedupon completion or termination of a transaction within the media playerdisplay.

In one or more embodiments, the interaction overlay element isassociated with the displayed content of the media file.

In one or more embodiments, the transaction overlay element is ane-commerce transaction interface.

In one or more embodiments, the transaction overlay element relates to atransaction consisting of one or more of: a data submission form,purchasing an item, making a booking, making a donation, and registeringfor a service.

In one or more embodiments, the media file is one of a music video, afilm, an advertisement, and a video clip.

In one or more embodiments the media file is a rich media file.

In one or more embodiments, the first encoded cue includes one or moreof an interaction overlay element title, a transaction type, aproduct/service identifier, a start time for displaying interactionoverlay, and an end time to stop displaying the interaction overlayelement.

In one or more embodiments, the first encoded cue includes metadata tagswhich identify one or more of an external integration module, a commerceAPI, a content API, a payment provider, and a content delivery network.

In one or more embodiments the metadata is encoded using FFmpeg softwaretogether with a JSON string encoding scheme.

In one or more embodiments the media player is configured to communicatewith one or more external transaction services. Preferably, the one ormore external transaction services includes a payment provider.

In one or more embodiments the one or more external transaction servicesincludes an order fulfilment service provider.

According to a second aspect of the present invention there is provideda computer program product comprising instructions for performing themethod of the first aspect of the invention.

According to a third aspect of the present invention, there is provideda system configured for playback of media files, the system comprising:a media file editor module for encoding cues at one or more locationswithin a media file, the encoded cues being configured to couple to oneor more service modules for causing an interaction overlay element to bedisplayed within a media player during playback of the media file tofacilitate transactions within the media player; and, a media playercomprising computer executable instructions for performing the method ofthe first aspect of the present invention.

In one or more embodiments the system further comprises one or moreservice integration modules selected from a commerce API, a content API,a payment provider, and a content delivery network.

In one or more embodiments of the system the interaction overlay elementis associated with the displayed content of the media file.

In one or more embodiments the interaction overlay element is configuredto communicate with one or more external transaction services inresponse to user input to display a transaction overlay element withinthe media player.

In one or more embodiments of the system the transaction overlay elementis an e-commerce transaction interface.

In one or more embodiments of the system the transaction overlay elementrelates to a transaction consisting of one or more of: a data submissionform, purchasing an item, making a booking, making a donation, andregistering for a service.

In one or more embodiments of the system the encoded cue includes one ormore of an interaction overlay element title, a transaction type, aproduct/service identifier, a start time for displaying interactionoverlay, and an end time to stop displaying the interaction overlayelement.

In one or more embodiments of the system the encoded cue includesmetadata tags which identify one or more of a commerce API, a contentAPI, a payment provider, and a content delivery network.

In one or more embodiments the media file editor module is adapted toencode the cue in the media file using FFmpeg software together with aJSON string encoding scheme

In one or more embodiments of the system the media player is configuredto communicate with one or more external transaction services.

In one or more embodiments of the system the media file is a rich mediafile.

BRIEF DESCRIPTION OF THE DRAWINGS

An example of the present invention will now be described in detail withreference to the accompanying drawings, in which:

FIG. 1 shows an example of a sequence of window views (a) to (h)displayed within a media player window during the playback of an encodedmedia file;

FIG. 2 shows an example of a method for identifying times and functionsof specific cues to be encoded within a media file before storage forsubsequent retrieval and playback;

FIG. 3 shows a flow diagram outlining a process of uploading, encodingand storing the media file for subsequent retrieval;

FIG. 4 shows an example of a media player configured to interact withexternal e-commerce applications via a video commerce platformarchitecture;

FIG. 5 shows a flow diagram outlining a process for playback of encodedmedia files including locating external modules and e-commerceapplications;

FIG. 6 shows an overview of the player and platform architecture,showing coding layers within an encoded media file; and,

FIG. 7 illustrates dataflow between the media player and the e-commerceplatform.

DETAILED DESCRIPTION

The present invention provides a media player configurable to providethe user with a seamless way of conducting transactions from within awindow/display of the media player itself. All intermediate stepsrelating to the required transaction are carried out by calling uprelevant modules/applications from within the application libraries fromwithin an e-commerce platform without redirecting the user to alternatewebpages and without the need for loading additional displays, windowsor tabs. The window or display of the media player can be considered asbeing the page on which the media content is being displayed to theuser. Alternatively, the window or display of the media player mayconsist of a dedicated tab within a window or tab. The media content maybe played back via dedicated software that is run within the givenwindow or tab. The transaction that is conducted upon detection of userinteraction with the displayed media content can be completed within thesame window or tab in which the media content is being displayed withoutthe need to load any additional windows or tabs. This allows for theuser to complete the transaction in a seamless way utilising onlyminimal additional computer resources. In summary, when completing thetransaction, the user will not be redirected to a different window ortab and the transaction can be completed using an overlay element thatis presented over the media content in the same display window or tab.

In preferred embodiments, the media player is configured to retrieve anencoded media file from a server or other content delivery network(CDN). The media player is further configured to display predefinedoverlays to the user during playback of the media file in response toidentifying cues encoded into the media file by the content owner. Thecontent owner can upload the media files to a server or other CDN via adashboard/user interface. The cues can be encoded with a plurality offields to enable the desired functionality to be achieved.

The encoded cues may include metadata tags which define a plurality ofparameters for identifying the media file itself for defining playlistsand can also define various parameters to define the various actionableicons. The metadata relating to the type of action for each actionableicon also directs the media player to the relevant interaction overlayelement to display and towards any necessary application libraries andexternal applications required to complete the relevant functions. Themetadata for the encoded cues also defines the start times and stoptimes for displaying the actionable icon as well as details relating toany products/services being offered to the user.

In preferred embodiments, the media player window is configured todisplay to the user an actionable icon via a predefined overlay renderedover the playback of the video. The media player is further configuredto display to the user the progress of the transaction via anotherpredefined overlay which directs the platform to call the relevantmodules/applications required to provide the required functionality.Once the transaction has been completed the user is returned to themedia file at the point at which the transaction was initiated toprovide for a seamless and intuitive experience.

In preferred embodiments, the media player is configured to display anactionable icon within the media player window at predefined times whichare defined by the content owner (or their proxy) via a dashboard/portalinterface when uploading the media file for storage and subsequentretrieval. The actionable icon is presented by using a predefinedinteraction overlay element which can display an icon with the requiredaction, for example “Buy”, “Book” or “Donate”. It will be appreciatedthat the transaction may alternatively include registering forsubscription services or filling out questionnaires, enteringcompetitions or any other action which requires further input from theuser. The relevant modules/applications required to fulfil those actionsare identified when the cues are added to the media file.

FIG. 1 shows an example of a sequence of views (a) to (h) of the windowof a media player which are displayed during the playback of andinteraction with an encoded media file. The example of FIG. 1 isspecifically directed towards making purchases during the playback of amedia file and the window views outlined in FIG. 1 display the variousstages of completing the transaction. For alternative functionsdifferent intermediate stages would be displayed.

The display of the media player is reconfigured upon detection of theencoded cues during playback of the encoded media file. The media playercan be any existing media player on any platform with a dedicated plugin, or alternatively can be a standalone player which replaces anexisting player on a website. Alternatively, the media player maybeconfigured to be incorporated into any one of a plurality of contentstreaming devices such as smart TVs.

Upon playback of an encoded media file, the window displays the selectedcontent as in window (a). The content can be selected by searching themedia library or selecting from a carousel or other selection methodthat displays the file data. The media file metadata can include thefile name and/or a thumbnail of the file to enable displaying the filesto the user to aid file selection.

During playback and upon detecting an encoded cue, the media player isconfigured to display a suitable predefined interaction overlay element(window (b)) presenting to the user an actionable icon 101 such as a“Buy Now” or “Book” or “Donate” button. All parameters relating to theactionable icon are defined by the content owner during the uploading ofthe media file to the CDN/database.

The interaction overlay element can be configured to cover the entirewindow or only a part of the window and can be semi-transparent or havesections which are transparent in order to avoid completely obscuringthe playback of the media file to allow continued viewing of the mediacontent. Each overlay can be tailored by the content owner or one of apre-set number of overlays associated with each action can be selectedfor ease of use. Parameters of the overlay that can be tailored includeone or more of the colour schemes, the font, the specific iconparameters as well as incorporating the content owner branding withinthe overlay if desired.

If no interaction by the user is detected during the defined duration,the media player is configured to remove the interaction overlay element(window (c)) and continue to play the media file until a subsequent cueis detected.

If during the display of the interaction overlay element the userinteracts with the actionable icon 101, the media player is configuredto replace the interaction overlay element with a subsequent transactionoverlay element to allow the user to input details to complete thesubsequent action. User interaction includes one clicking, hoveringover, or other defined actions (which can be described in theinteraction overlay element).

The transaction overlay element in windows (d) to (g) in FIG. 1 displaya checkout process for completing a transaction. The transaction overlayelement also allows the user to cancel the transaction by selecting acancel icon 104 anytime during the checkout procedure which returns theuser back to the playback of the media file.

As shown in the figures, the media player presents the transactionoverlay element in the same media player window as the media file isdisplayed, thereby avoiding the need for additional resources such asmemory or processing power, as well as providing a much more intuitiveexperience for the user. The transaction overlay element is configuredto enable the user to enter the required data for completing one of aplurality of predefined actions such as for example completing apurchase, making a donation, making a booking, or any other actionrequiring the completion of a data submission form. The transactionoverlay element presented for the alternative actions will be specificto the action selected.

The media player is configured to process the desired transaction usingany one of a plurality of existing fulfilment services and to render theprogress of the transaction to the user within the transaction overlayelement so as to avoid the need to navigate through additional windowswhich again saves on resources and provides a much more intuitiveexperience.

Once the desired action is completed, this is communicated to the uservia the transaction overlay element and the reconfigurable media playeris configured to remove the overlays and resume playback of the mediafile (window (h)).

Alternatively, if the media file was a dedicated advert the media filemay be encoded such that upon completion of the transaction the mediaplayer can move onto the next file in a playlist or alternativelypresent the user with a number of related media files for the user toselect from upon returning to the media player window.

FIG. 2 shows an example of a method for identifying times and functionsof specific cues to be encoded within a media file before storage forsubsequent retrieval and playback. A file metadata 201 is added to thebeginning of the media file 208 and various functions are added atidentified times during the playback and encoded onto the media filebefore being stored in on the CDN database. The content owner can selectpoints during the media file where cues are to be added 202, 203. FIG. 2shows an example with only 2 separate cues but it will be appreciatedthat any number of cues can be encoded during a media file and themultiple cues can each have the same or different functions associatedwith them.

Each cue identifies a start time 204, 206 and an end time 205, 207. Themultiple cues can also be encoded concurrently and do not need to bespaced apart. The cues can also be encoded at the start or end of themedia file and configured to last for any length of time between thestart and end of the media file. A cue can also be configured such thatthe interaction overlay element is displayed for a duration of time thatextends beyond the end of the media file.

FIG. 2 identifies a range of metadata tags 210 associated with theactionable icon including, button title, checkout-type, start time, endtime, product IDs, the metadata tags can also include the icon location,icon size, icon animation, and icon tracking.

FIG. 3 shows an example flow diagram outlining a process of uploading,encoding and storing the media file for subsequent retrieval. Theprocess for encoding the media file is achieved by using a useraccessible portal/dashboard to upload the initial media file 301. Thetimes and required functions for each cue is identified and added to therelevant point in the media file 302. The metadata tags are configuredto direct the media player to use the relevant content and applicationlibraries during playback to achieve the required functionality. Theencoded media file is stored to a database for access by the CDN. Theencoded media file is stored for later retrieval and playback 304.

FIG. 4 shows an example of a media player window 401 and how it isconfigured to interact with external applications via a video e-commerceplatform architecture 402. The platform architecture facilitates thearrangement of the various modules and external applications to enablethe required actions upon interacting with the actionable icon 403 inthe media player window 401. FIG. 4 also shows a user dashboard 404which can be used to upload and edit the initial media file beforestoring the encoded media file in a database 405. The required mediafile is retrieved from the database via the CDN 407. The metadata tagsadded to the encoded media files are linked to the external modules 408,409 via the e-commerce and content APIs 406. This can be achieved usinghyperlinks or other alternatives which cause the required application tobe launched upon the actionable icon being selected in the media playerwindow.

The embodiment shown in FIG. 4 allows content owners to have secureaccess to the database that stores their content so they can upload andedit the media content as required. For instance, different products maybe added to an existing media file or a product/service may no longer beavailable and needs to be removed. The database can be stored on anynumber of local servers or cloud storage providers.

The database is updated by way of a dashboard/user interface or otheruser accessible portal. Access to the secure servers allows new contentto be uploaded or existing content to be edited by the content owneralone, different content owners may have access to different databasesor secure parts of the same database. The dashboard can also provide thecontent owner a suite of video editing functions to enable the contentowner to modify their media file before uploading. The content owner mayalso encode the videos offline using suitable encoding and subsequentlyupload the encoded media files via the dashboard/user interface.

The content owner can use the dashboard to crop, trim, rotate, orotherwise edit the media files and also identify points during the mediafile at which to encode the cues that allow for user interaction andcompletion of a range of predefined actions. Once the file has beenedited and encoded, the encoded file is saved and stored in the databasewith a range of associated metadata to identify the file. This metadatacan include one or more of: video ID, title, synopsis, date/time,priority (for ordering), booking ID, image (preview), source of videofile, start time, and search.

FIG. 4 also illustrates the use of APIs 406. These are pre-existingapplications which can provide the required functionalities in thebackground without the user having to navigate to those individualpages. In the example of a purchase, the user would not be required tonavigate to the merchant web site to place the order and would notsubsequently be required to navigate to a separate web page to completepayment etc. This is especially convenient when product placement typeadvertisements are used, where navigating away from the content wouldnot be desirable. The use of APIs also provides for a more robust andreliable system which can ensure high availability, high scalability,reliable commerce functionality including payment processing/fulfilment,with additional benefits including the ability to provide real-timestatistics and data logging capabilities as well as ensuring reliableintegration with third party systems.

FIG. 5 shows a flow diagram illustrating a process for playback ofencoded media files, including locating external modules andapplications for providing required functions. The process for playbackrequires retrieval of the desired media file from the database via theCDN 501. The media player window begins playback of the encoded mediafile 502, it will be appreciated that the media file can be one of amusic video, a film, an advertisement, a video clip or any other richmedia file. Upon detecting an encoded cue associated with the mediafile, the media player is configured to overlay one of severalpre-defined screen overlays over the top of the media file payback 503.Loading the required overlay also identifies the necessary externalmodules that are needed to complete the relevant transaction based onthe encoded metadata tags 504. The progress of the selected function isrendered to the user via another overlay which allows the user tocomplete the necessary transaction 505. Upon completion of thetransaction the media player resumes playback of the media file 506.

FIG. 6 shows an example embodiment of the coding layers within the mediaplayer which enable the required functionality to be achieved. The mediaplayer 601 is linked to the e-commerce platform 602. The media playerhas predefined overlays 604 stored which allow the required functions tobe realised 603.

The encoded media file causes the relevant overlay to be presented tothe user upon detecting the encoded metadata tags in the encoded mediafile 605 during playback. The metadata tags also direct the media playerto load up the required applications and associated content libraries606 required to deliver the necessary functionality to the user. In oneexample, the e-commerce and API client libraries as well as thee-commerce functionality are provided by external third-party providersand are integrated into the commerce platform. The example transactionsshown in FIG. 6 include, but are not limited to:

-   1) Making a booking or reservation-   2) Purchasing of a product-   3) Making a donation

The user can use the dashboard to encode data within specified metadatafields for each media file which enables the media player to presentplaylists to the user. An example of the coding for providing the userwith a list of search results is shown below:

    {        “videold; “1 ”,        “title ”: “Nile Rogers Live ”,       “synopsis ”: ” ”,        “dateTime”: “1494242000 ”,       “priority”:9,        “booking id”: []       “image:”http:VVwgsplayrcart.\/comVdashboardVimagesVdymanic1magesVlarge - ”,       “sources ”: [                                              {“src”: ”https: VVwgsplayrcart. com VdashboardVimages Vdynamic1mages Vvid5e6cc47334c85.mp4”,        “type ”: ”video\.mp4 ”,        “quality: ”medium”                                             }      ]     Search engine ”: ” ”     }

Furthermore, each of the media files also has encoded within it,information to identify the type of products/services on offer and thetimes at which to offer these as described earlier. One example of howthis data is encoded is shown below:

{        “button_ title ”: ”Buy Now ”,        “checkout _type ”: ”buy”,       “startTime ”: ”21 ”,        “endtime ”: ”32 ”,},“product ids ”:[3656] }, {        “button title ”: ”Buy Now ”,       “checkout type ”: ”buy”,        “starttime ”: ”32”,       “endtime ”: ”56”, “product ids ”:[3662] }

The above shows an example of providing a “Buy Now” function whichstarts at time=21 and ends at time=31 and then a second cue which startsat time=32 and ends at time=56. In each of these two cases although thefunction is the same (“Buy Now”), the product is different and canrelate to a product that is visible on the screen at the relevant timesdefined by the content owner.

In the above example the metadata is encoded using FFmpeg softwaretogether with a JSON string encoding scheme. However, any suitablecoding scheme can be used to encode the required data.

FIG. 7 shows an example embodiment of the dataflow between the mediaplayer and the e-commerce platform. The media player is configured toload the required content from the CDN hosted by the e-commerceplatform. Once the required media file or a suitable playlist is loadeda user can select a media file to be played.

While a media file is being played back, the encoded metadata tagsassociated with the cues added by the content owner provide the playerwith instructions as to when the display should be reconfigured in orderto display and subsequently remove dedicated actionable icons to enablethe user to interact with and initiate a predefined action, where theactions are associated with the media content being presented at thatpoint during playback of the media file.

The transaction overlay element is also configured to render theprogress of the subsequent stages of the commerce action including anypayment fulfilment requirements, the progress is rendered via the mediaplayer window with all data processing being completed in the backgroundvia dedicated APIs and communicated via integration modules. The user isonly presented with a summary of the progress and can complete therequired action before resuming media file playback upon completion ofthe transaction.

Any order placement and confirmation emails are subsequentlycommunicated to the user via the existing mechanisms in place with thethird party applications being used in the background.

In some example embodiments the set of instructions/method stepsdescribed above are implemented as functional and software instructionsembodied as a set of executable instructions which are effected on acomputer or machine which is programmed with and controlled by saidexecutable instructions. Such instructions are loaded for execution on aprocessor (such as one or more CPUs). The term processor includesmicroprocessors, microcontrollers, processor modules or subsystems(including one or more microprocessors or microcontrollers), or othercontrol or computing devices. A processor can refer to a singlecomponent or to plural components.

In other examples, the set of instructions/methods illustrated herein,and data and instructions associated therewith are stored in respectivestorage devices, which are implemented as one or more non-transientmachine or computer-readable or computer-usable storage media ormediums. Such computer-readable or computer usable storage medium ormedia is (are) considered to be part of an article (or article ofmanufacture). An article or article of manufacture can refer to anymanufactured single component or multiple components. The non-transientmachine or computer usable media or mediums as defined herein excludessignals, but such media or mediums may be capable of receiving andprocessing information from signals and/or other transient mediums.

Example embodiments of the material discussed in this specification canbe implemented in whole or in part through network, computer, or databased devices and/or services. These may include cloud, internet,intranet, mobile, desktop, processor, look-up table, microcontroller,consumer equipment, infrastructure, or other enabling devices andservices.

1-20. (canceled)
 21. A method for displaying a media file, comprisingthe steps of: retrieving the media file from a file location; displayingcontent of the media file on a media display window; displaying aninteraction overlay element, associated with the media file, on themedia display window while the media file content is displayed;detecting a user input associated with the interaction overlay element;and, in response to the user input, initiating the display of atransaction overlay element within the media display window, thetransaction overlay element comprising a transaction interface fordetecting further user inputs and for calling a module or application ofa platform to complete a transaction within the media display window.22. The method of claim 21, wherein the transaction overlay element isoverlaid within the media display window;.
 23. The method of claim 21,wherein the transaction overlay element displays a transaction that isto be processed with the platform while the transaction overlay elementremains within the media display window.
 24. The method of claim 21,wherein the method comprises: while remaining within the media displaywindow, completing the transaction within the media display window byprogressing through at least one stage of the transaction based on thefurther user input, wherein the at least one stage includes at least oneof an order fulfillment screen, a customer detail entry screen, acomplete checkout process screen, or an order confirmation screen. 25.The method of claim 21, wherein the media file is paused when a userinput associated with the interaction overlay element is detected. 26.The method of claim 21, wherein the media file is resumed uponcompletion or termination of a transaction within the media displaywindow.
 27. The method of claim 21, wherein the interaction overlayelement is associated with the displayed content of the media file. 28.The method of claim 21, wherein the transaction interface is ane-commerce transaction interface.
 29. The method of claim 21, whereinthe transaction overlay element relates to a transaction consisting ofone or more of: a data submission form, purchasing an item, making abooking, making a donation, and registering for a service.
 30. Themethod of claim 21, wherein the media file is one of a music video, afilm, an advertisement, and a video clip.
 31. The method of claim 21,wherein the media file is a rich media file.
 32. The method of claim 21,wherein the method comprises: detecting a cue associated with the mediafile; and displaying the interaction overlay element in response todetecting the cue.
 33. The method of claim 32, wherein the cue comprisesmetadata.
 34. The method of claim 33, wherein the metadata comprisesmetadata tags which identify one or more of an external integrationmodule, a commerce API, a content API, a payment provider, and a contentdelivery network.
 35. The method of claim 32, wherein the cue includesone or more of: an interaction overlay element title, a transactiontype, a product/service identifier, a start time for displayinginteraction overlay, and an end time to stop displaying the interactionoverlay element.
 36. The method of claim 21, further comprisingcommunicating with one or more external transaction services.
 37. Themethod of claim 36, wherein the one or more external transactionservices includes a payment provider.
 38. A computer program productcomprising instructions for performing the method of claim 21.